Home Applications blockchain - [ IRIS python ]

blockchain - [ IRIS python ]

InterSystems does not provide technical support for this project. Please contact its developer for the technical assistance.
4.5
1 reviews
0
Awards
515
Views
0
IPM installs
2
0
Details
Releases (2)
Reviews (1)
Issues
Save your logs in a blockchain structure

What's new in this version

Save your logs in a blockchain structure

You can create a class that Extends dc.Persistent Long Abstract

After any change in the registry, it will be saved in ^GBlockchainLog(, )

blockchain IRIS - ( Embedded Python )

Example of creating a financial blockchain Using Embedded Python on IRIS Data Platform

What is a blockchain

Blockchain is a chain of blocks, where each block contains information from the previous block, this concept can be applied in many ways.

What is a blocks?

Block will be composed of: a datetime, index, content, hash and the hash of the previous block.

In this project the blocks are constructed by:

  1. index:
    • block identification index in the chain
  2. timestamp:
    • block creation datetime
  3. transactions:
    • Financial transactions that are part of this block, represents the content of the block, you can change the structure by changing the dc.Blockchain.Blockchain classmethod newTransaction
  4. hash:
    • the entire contents of the encrypted block
  5. nonce:
    • value that the system finds by the mining process, changing the hash value when the block is generated.
  6. previousHash:
    • hash of the previous block

Prerequisites

Make sure you have git and Docker desktop installed.

Installation

Clone/git pull the repo into any local directory

$ git clone https://github.com/Davi-Massaru/blockchain_Iris_python.git

Open the terminal in this directory and run:

$ docker-compose build && docker-compose up -d

Run the endpoint curl http://localhost:52773/api/blockchain/ping to verify the connection to the server

Get Started

After installing the application, you can access the end-points to better understand how it works

  1. http://localhost:52773/api/blockchain/chain [ GET ]

Returns the current state of blockchain

Response sample:

  1. http://localhost:52773/api/blockchain/transactions/new [ POST ]

Add a new transaction to be computed in a block, and return which block the transaction will be added

Request Content:

{
	"sender": "user 1",
	"amount": 1.42,
	"recipient": "user 2"
}

Response sample:

  1. http://localhost:52773/api/blockchain/mine [ GET ]

Start mining a new block that will be added to the chain, returns added block information

Response sample:

  1. http://localhost:52773/api/blockchain/block/{index} [ GET ]

Returns block information, in the given index

Response sample:

Exploring the blockchain

You can better understand and track global content and transactions through the portal.

Access http://localhost:52773/csp/sys/exp/UtilExpGlobalView.csp?$ID2=GBlockchain&$NAMESPACE=USER&$NAMESPACE=USER to see all blockchain content.

Access http://localhost:52773/csp/sys/exp/UtilExpGlobalView.csp?$ID2=GTransactions&$NAMESPACE=USER&$NAMESPACE=USER to see all transactions made and in which blocks were mined

References:

Made with
Version
1.0.121 Feb, 2022
Category
Technology Example
Works with
InterSystems IRISInterSystems IRIS BI
First published
21 Feb, 2022
Last edited
04 Feb, 2023
Last checked by moderator
26 Nov, 2024Works